
var express = require('express');//引入
var app = new express();//实例化

var md5 = require('md5-node');
var session = require('express-session');

app.use(session({
    secret:'key',
    resave:false,
    saveUninitialized:true,
    cookie:{
        maxAge:1000*60*60*2 //两小时
    },
    rolling:true //未操作两小时后让重新登录
}))

//var bodyParser = require('body-parser');
//获取post提交的数据
//app.use(bodyParser.urlencoded({extended:false}));
//app.use(bodyParser.json());

//上传图片 在有multiparty插件 可以不用引入body-parser
var multiparty = require('multiparty');
//var form = new multiparty.Form();
//form.parse(req,function(err,fields,files){}//fields 获取表单的数据  files 图片上传成功返回的地址信息


//配置ejs模板引擎  为res.render方法提供页面
app.set('view engine','ejs');
//ejs中 设置全局数据,所有页面都适用
//app.locals['userinfo'] ='1111';
//配置public静态资源目录
app.use(express.static('public'));

//自定义中间件  判断登录状态
app.use(function(req,res,next){
    if(req.url == '/login' || req.url == '/dologin'){
        next();
    }else{
        if(req.session.userinfo && req.session.userinfo.username!=''){//判断是否登录
            app.locals['userinfo'] = req.session.userinfo;
            next();
        }else{
            res.redirect('/login');
        }
    }
});

//引入mongo
//var MongoClient = require('mongodb').MongoClient;
//var mongoUrl = 'mongodb://localhost:27017/test';//连接数据库地址
var DB = require('./modules/db.js')

app.get('/',function(req,res){
    res.render('index');
});

app.get('/login',function(req,res){
    res.render('login');
});

//获取登录提交的数据
app.post('/dologin',function(req,res){
    //res.render('login');
    //console.log(req.body)


    //1.获取数据
    var username =req.body.username;
    var password =md5(req.body.password);

    //2.连接数据库查询数据
    DB.find('user',{
        username:username,
        password:password
    },function(){
        if(data.length >0){
            //保存用户信息
            req.session.userinfo = data[0];

            console.log('登录成功');
            res.redirect('/product');//登录成功跳转到商品列表
        }else{
            res.send("<script>alert('登录失败');location.href='/login'</script>");
        }
    })
    //MongoClient.connect(mongoUrl,function(err,db){
    //    if(err){
    //        console.log(err);
    //        return ;
    //    }
    //    //查询数据
    //    var result = db.collection('user').find({
    //        username:username,
    //        password:password
    //    });
    //
    //    result.toArray(function(e,data){
    //        console.log(data);
    //        if(data.length >0){
    //            //保存用户信息
    //            req.session.userinfo = data[0];
    //
    //            console.log('登录成功');
    //            res.redirect('/product');//登录成功跳转到商品列表
    //        }else{
    //            res.send("<script>alert('登录失败');location.href='/login'</script>");
    //        }
    //    });
    //})
});
app.get('/loginOut',function(req,res){
    //销毁session
    req.session.destroy(function(err){
        if(err){
            console.log(err)
        }else{
            res.redirect('/login')
        }
    });
});

app.post('/productAdd',function(req,res){
    //获取表单的数据 以及post过来的数据
    var form = new multiparty.Form();
    form.uploadDir='upload';//上传图片保存的地址  目录必须存在
    //fields 获取表单的数据  files 图片上传成功返回的地址信息

    form.parse(req,function(err,fields,files){

    });
});

app.get('/productEdit',function(req,res){
    //获取get的id
    var id = req.query.id;
    //去数据库查询这个id对应的数据
    DB.find('product',{'_id':new DB.ObjectID(id)},function(err,data){
        res.render('productedit',{
            list:data[0]
        })
    });

});



app.listen(8003,'127.0.0.1');


//var mysql = require('mysql');
//var connection = mysql.createConnection({
//    host : 'localhost',
//    port:'3306',
//    user : 'root',
//    password : '123456',
//    database : 'test'
//});
//
//connection.connect();
//connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
//    if (error) throw error;
//    console.log('The solution is: ', results[0].solution);
//});
//connection.end();